'''
Created on 15/10/2011

@author: Daniel
'''
from Tkinter import *
import tkMessageBox
from VariaveisGlobais import *
import datetime
from Revista import *
from Programa import *

class Janela_cadastro_revista:
    def __init__(self, raiz):
        self.hoje = datetime.date.today()
        self.hoje2 = self.hoje.strftime('%d/%m/%Y')
        
        self.meuPai = raiz

        self.frame1=Frame(self.meuPai)
        self.frame1.grid(row = 1, column = 1)
        self.frame2=Frame(self.meuPai)
        self.frame2.grid(row = 2, column = 1)
        self.frame3=Frame(self.meuPai)
        self.frame3.grid(row = 3, column = 1)

        Label(self.frame1, text="Formulario", font = fonte_label).grid(row = 1, column = 1)
        Label(self.frame1, text="").grid(row = 2, column = 1)
        
        Label(self.frame2, text="Titulo: ", font = fonte_label).grid(row = 1, column = 1, sticky = W)              
        self.titulo = Entry(self.frame2, width = comprimento_texto_nome, font = fonte_texto)
        self.titulo.grid(row = 1, column = 2, sticky = W)
        self.titulo.focus_force()

        Label(self.frame2, text="Editora: ", font = fonte_label).grid(row = 2, column = 1, sticky = W)
        self.editora = Entry(self.frame2, width = comprimento_texto_email, font = fonte_texto)
        self.editora.grid(row = 2, column = 2, sticky = W)

        Label(self.frame2, text="Data da publicacao: ", font = fonte_label).grid(row = 3, column = 1, stick = W)
        self.data_publicacao = Entry(self.frame2, width = comprimento_texto_tel, font = fonte_texto)
        self.data_publicacao.grid(row = 3, column = 2, sticky = W)
        
        Label(self.frame2, text="dd/mm/aaaa", font = fonte_label).grid(row = 3, column = 2, stick = E)

        Label(self.frame2, text="N Edicao: ", font = fonte_label).grid(row = 4, column = 1, sticky = W)
        self.num_edicao = Entry(self.frame2, width = comprimento_texto_tel, font = fonte_texto)
        self.num_edicao.grid(row = 4, column = 2, stick = W)
        
        Label(self.frame2, text="Codigo da revista: ", font = fonte_label).grid(row = 5, column = 1, sticky = W)
        self.cod_revista = Entry(self.frame2, width = comprimento_texto_tel, font = fonte_texto)
        self.cod_revista.grid(row = 5, column = 2, stick = W)

        Label(self.frame2, text="Conservacao: ", font = fonte_label).grid(row = 6, column = 1, sticky = W)
        self.var_conservacao = StringVar(self.frame2)
        self.var_conservacao.set('Novo')
        self.conservacao = OptionMenu(self.frame2, self.var_conservacao, 'Novo', 'Usado')
        self.conservacao.config(width = 5)
        self.conservacao.grid(row = 6, column = 2, sticky = W)

        Label(self.frame2, text="Data do cadastro: ", font = fonte_label).grid(row = 7, column = 1, sticky = W)
        Label(self.frame2, text=self.hoje2, font = fonte_label).grid(row = 7, column = 2, sticky = W)

        Label(self.frame3, text="").grid(row = 1, column = 1)
        self.botao_cadastrar = Button(self.frame3, width = 10, command = self.Cadastrar, text = "Cadastrar").grid(row = 2, column = 1, padx= 10)
        self.botao_cancelar = Button(self.frame3, width = 10, command = self.Cancelar, text = "Cancelar").grid(row = 2, column = 2, padx = 10)
        
        self.cancela = False

    def Cadastrar(self):
        #Data da publicacao e do cadastro
        try:
            self.dia = int(self.data_publicacao.get()[:2])
            self.mes = int(self.data_publicacao.get()[3:5])
            self.ano = int(self.data_publicacao.get()[6:])
            self.nova_data_publicacao = datetime.date(self.ano,self.mes,self.dia)
            self.nova_data_publicacao = self.nova_data_publicacao.strftime('%Y-%m-%d')
            
            self.hoje = self.hoje.strftime('%Y-%m-%d')            
            #Verifica se todos os campos foram preenchidos
            if not self.titulo.get() or not self.editora.get() or not self.data_publicacao.get() or not self.cod_revista.get() or not self.var_conservacao.get():
                tkMessageBox.showwarning('Mensagem do sistema', 'O preenchimento de todos os campos e obrigatorio.')
            else:
                self.revista = Revista()
                self.revista.set_titulo(self.titulo.get())
                self.revista.set_editora(self.editora.get())
                self.revista.set_codigo(self.cod_revista.get())
                self.revista.set_tipo(3)
                self.revista.set_numero_da_edicao(self.num_edicao.get())
                self.revista.set_conservacao(self.var_conservacao.get())
                self.revista.set_data_cadastro(self.hoje)
                self.revista.set_emprestado(0)
                self.revista.set_deletado(0)
                self.revista.set_data_da_revista(self.nova_data_publicacao)
            
                programa.cadastrar_revista(self.revista)
        except:
            tkMessageBox.showwarning('Mensagem do sistema', 'Formato de data invalido, por favor informe a data no formato dd/mm/aaaa.')
    
    def Cancelar(self):
        try:
            self.meuPai.destroy()
            self.container = Frame(self.meuPai)
        except:
            pass
